import org.apache.spark.{SparkConf, SparkContext}

object scala4217 {
  def main(args: Array[String]): Unit = {
    // 创建Spark配置
    val conf = new SparkConf()
      .setAppName("CartesianExample")
      .setMaster("local[*]")
    // 创建SparkContext
    val sc = new SparkContext(conf)

    try {
      // 创建RDD
      val rdd01 = sc.makeRDD(List(1, 3, 5, 3))
      val rdd02 = sc.makeRDD(List(2, 4, 5, 1))
      // 通过cartesian()方法求两个RDD的笛卡尔积
      val result = rdd01.cartesian(rdd02).collect()
      println("两个RDD的笛卡尔积结果:")
      result.foreach(println)
    } catch {
      case e: Exception =>
        println(s"执行过程中出现异常: ${e.getMessage}")
    } finally {
      // 关闭SparkContext
      sc.stop()
    }
  }
}